<?php
/*
| --------------------------------------------------------------------------------------------------
| <validations>
| Desenvolvedor:	eduardo
| E-mail:		eduardo.sirangelo@21century.com.br
| Descrição:
|	- 
| Quality is Everyting
| --------------------------------------------------------------------------------------------------
*/
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Validations {

    function digito_verificador_cnpj($cnpj) {
        if (strlen($cnpj) <> 18) return 0;
        $soma1 = ($cnpj[0] * 5) +

        ($cnpj[1] * 4) +
        ($cnpj[3] * 3) +
        ($cnpj[4] * 2) +
        ($cnpj[5] * 9) +
        ($cnpj[7] * 8) +
        ($cnpj[8] * 7) +
        ($cnpj[9] * 6) +
        ($cnpj[11] * 5) +
        ($cnpj[12] * 4) +
        ($cnpj[13] * 3) +
        ($cnpj[14] * 2);
        $resto = $soma1 % 11;
        $digito1 = $resto < 2 ? 0 : 11 - $resto;
        $soma2 = ($cnpj[0] * 6) +

        ($cnpj[1] * 5) +
        ($cnpj[3] * 4) +
        ($cnpj[4] * 3) +
        ($cnpj[5] * 2) +
        ($cnpj[7] * 9) +
        ($cnpj[8] * 8) +
        ($cnpj[9] * 7) +
        ($cnpj[11] * 6) +
        ($cnpj[12] * 5) +
        ($cnpj[13] * 4) +
        ($cnpj[14] * 3) +
        ($cnpj[16] * 2);
        $resto = $soma2 % 11;
        $digito2 = $resto < 2 ? 0 : 11 - $resto;
        return (($cnpj[16] == $digito1) && ($cnpj[17] == $digito2));
    }

    function digito_verificador_cpf($cpf) {

        $cpf = str_replace(".", "", $cpf);
        $cpf = str_replace("-", "", $cpf);
        
        $soma = 0;

        if (strlen($cpf) <> 11)
         return 0;

        // Verifica 1º digito
        for ($i = 0; $i < 9; $i++) {
         $soma += (($i+1) * $cpf[$i]);
        }

        $d1 = ($soma % 11);

        if ($d1 == 10) {
         $d1 = 0;
        }

        $soma = 0;

        // Verifica 2º digito
        for ($i = 9, $j = 0; $i > 0; $i--, $j++) {
         $soma += ($i * $cpf[$j]);
        }

        $d2 = ($soma % 11);

        if ($d2 == 10) {
         $d2 = 0;
        }

        if ($d1 == $cpf[9] && $d2 == $cpf[10]) {
         return 1;
        }
        else {
         return 0;
        }
    }
}
?>
